// 消息提示工具类
class MessageUtil {
  
  // 成功提示（短提示）
  static showSuccess(message, duration = 2000) {
    wx.showToast({
      title: message,
      icon: 'success',
      duration: duration
    });
  }

  // 错误提示（根据内容长度选择合适的提示方式）
  static showError(message, options = {}) {
    // 如果消息较短，使用toast
    if (message.length <= 8) {
      wx.showToast({
        title: message,
        icon: 'error',
        duration: options.duration || 2000
      });
    } else {
      // 消息较长，使用modal
      wx.showModal({
        title: options.title || '提示',
        content: message,
        showCancel: false,
        confirmText: '确定',
        confirmColor: '#007AFF'
      });
    }
  }

  // 警告提示
  static showWarning(message, options = {}) {
    if (message.length <= 8) {
      wx.showToast({
        title: message,
        icon: 'none',
        duration: options.duration || 2000
      });
    } else {
      wx.showModal({
        title: options.title || '警告',
        content: message,
        showCancel: false,
        confirmText: '确定',
        confirmColor: '#FF9500'
      });
    }
  }

  // 信息提示
  static showInfo(message, options = {}) {
    if (message.length <= 8) {
      wx.showToast({
        title: message,
        icon: 'none',
        duration: options.duration || 2000
      });
    } else {
      wx.showModal({
        title: options.title || '信息',
        content: message,
        showCancel: false,
        confirmText: '确定',
        confirmColor: '#007AFF'
      });
    }
  }

  // 确认对话框
  static showConfirm(message, options = {}) {
    return new Promise((resolve) => {
      wx.showModal({
        title: options.title || '确认',
        content: message,
        showCancel: true,
        cancelText: options.cancelText || '取消',
        confirmText: options.confirmText || '确定',
        cancelColor: '#000000',
        confirmColor: '#007AFF',
        success: (res) => {
          resolve(res.confirm);
        },
        fail: () => {
          resolve(false);
        }
      });
    });
  }

  // 加载提示
  static showLoading(message = '加载中...') {
    wx.showLoading({
      title: message,
      mask: true
    });
  }

  // 隐藏加载提示
  static hideLoading() {
    wx.hideLoading();
  }

  // 网络错误专用提示
  static showNetworkError(error) {
    let message = '网络连接失败';
    let title = '网络错误';
    
    if (error && error.message) {
      if (error.message.includes('HTTP错误')) {
        message = '服务器响应异常，请稍后重试';
        title = '服务器错误';
      } else if (error.message.includes('网络请求失败')) {
        message = '网络连接失败，请检查网络设置';
        title = '网络错误';
      } else if (error.message.includes('服务异常')) {
        message = '服务暂时不可用，请稍后重试';
        title = '服务异常';
      } else {
        message = error.message;
      }
    }
    
    this.showError(message, { title });
  }

  // 服务异常专用提示（简短版本）
  static showServiceError() {
    wx.showToast({
      title: '服务异常',
      icon: 'none',
      duration: 2000
    });
  }
}

module.exports = MessageUtil; 